Fractal Art

Share

What is Fractal Art?

Fractal art is a type of digital art which is usually an image generated by a program based on fractal math. I assume the term could also refer to music generated fractally, but I'm not very sure about how that would sound.

Four examples of fractal images.
Four examples of fractal art. Authors (left to right): Fractaldancer, TulipVorlax, Silvino González Morales, Inductiveload.

How to Create Fractal Art

To create fractal art, normally you would use an application like Apophysis that provides tools to easily create, edit and render fractals. You could program your own fractal art generator, but that isn't something most people would normally do.

A window with various generated geometric shapes (fractals) on display.
A screenshot of Apophysis AV, a fractal art generator.

To have a better idea of how it works, let's see an example.

An image of a ball-like brownish luminous circle that appears to reflect a light pattern on a black background.
A fractal art created with Apophysis. Creator: Garden [unclemontezuma.deviantart.com]. License: CC BY-SA.

The image above was generated in Apophysis. Its source code is the following XML:

<flame name="BALL" version="Apophysis 2.08 3D hack" size="480 480" center="0.286633300956469 -0.28877207866438" scale="176.457740608603" cam_pitch="1.07337748997651" cam_yaw="0.191986217719376" cam_perspective="0.2" oversample="1" filter="0.2" quality="1" background="0 0 0" brightness="1.99130434782609" gamma="1.85" gamma_threshold="0.0199" >
   <xform weight="0.5" color="0.595119666540995" symmetry="1" linear3D="1" ztranslate="2.74092412926257" coefs="1 0 0 1 0 0" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0 0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0.5 0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0.5 0" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0.5 -0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0 -0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 -0.5 -0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 -0.5 0" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 -0.5 0.5" />
   <xform weight="0.5" color="0" julian="1" coefs="0.014919 0 0 0.014919 0 0" julian_power="2" julian_dist="1" />
   <xform weight="0.5" color="0.299" linear3D="1" coefs="1.012932 0 0 1.012932 0 0" />
   <xform weight="0.5" color="0.468304102774709" symmetry="1" linear3D="1" ztranslate="1.59215245989617" coefs="1 0 0 1 0 0" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0 0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0.5 0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0.5 0" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0.5 -0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 0 -0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 -0.5 -0.5" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 -0.5 0" />
   <xform weight="0.5" color="0" symmetry="1" linear3D="1" coefs="1 0 0 1 -0.5 0.5" />
   <xform weight="0.5" color="0" linear3D="1" coefs="1.012932 0 0 1.012932 0 0" />
   <finalxform color="0" symmetry="1" curl3D="1" coefs="1.001014 0 0 1.001014 0 0" curl3D_cx="0" curl3D_cy="0.873079" curl3D_cz="0.0718684" />
   <palette count="256" format="RGB">
      9E0000A40000AF0000BB0000C70000D20000EA0000F00000
      F60000FD0000F2160BE82C16DD4221C76E37BC8342B2994D
      ACA452A7AF589CC56392DB6E87F17980FF8080E99680E39B
      80DEA180D3AC80C8B780BEC180B3CC809DE2808EF08080FF
      7A80F47580E96A80D35F80BD5480A74980913380662D805B
      2880501D803A12802407800E0080002C841A378420428526
      5887336E8940838B4D998D5AAF8E66C59073FF9595FF9393
      FF9292FF9090FF8D8DFF8B8BFF8888FF8383FF8181FF8080
      FF7E7EFF7B7BFF7979FF7777FF7783FF768EFF769AFF75A6
      FF75B1FF74BDFF74C9FF73D4FF73E0FF72F8FF71FBFF71FF
      FF6BEDFF65DBFF5FC9FF5AB7FF54A5FF4E93FF4881FF426F
      FF3C5DFF374BFF2D2DFA293AF62548F12155ED1E63E81A70
      E4167EDF128BDB0E99D60AA6D106B4CD02C1CA00CACC00B9
      CE00A7CF0096D10085D30073D50062D70050D8003FDA002E
      DC001CDE000BDF0000D90C06D4180CCE2413C82F19C33B1F
      BD4725B7532BB25F32AC6B38A6773E9D8A489D7E429E723C
      9E66359F5B2FA04F29A04323A1371DA12B16A21F10A3130A
      A30804A40000A000009C00009800009400009000008C0000
      8800008400008000007C0000750000FF0000D31616BD2121
      A72C2C9137377C4242714747664D4D3A63631D7171008080
      008B8B00969600A1A100ACAC00B1B100B7B700CCCC00D7D7
      00E2E200EDED00F8F800FBFB00FFFF2CF0FF42E8FF58E0FF
      6DD8FF83D1FF8ECDFF99C9FFAFC2FFC5BAFFFFA6FFE9A2FF
      D39FFFBD9CFFA799FF9C97FF9196FF668FFF508CFF3A89FF
      2485FF0E82FF0781FF0080FF0B80FF1680FF2C80FF3780FF
      4280FF4D80FF5880FF5D80FF6380FF7980FF7785F4758BE9
      6A96D35FA1BD59A6B254ACA749B7913EC17C28D7501DE23A
      12ED2409F61200FF0016E9002CD30058A7006D9100837C00
      996600AF5000BA4500C53A00DB2400F10E00E90B00D31600
      BD2100B22600A72C009137007C42005058003A6300246E00
      1973000E79000080000A7500146A001E5F003249003C3E00
      4633004B2D005028005A1D006512008100008C0000980000
   </palette>
</flame>

What this means is that it's possible to put this code in Apophysis and generate exactly the same image.

Observe how it's not really a lot of code compared to a SVG image, for example. In fact, most of the text is simply due to XML being too verbose. All we have is a few "xform" elements where coefficients are specified. Apophysis just does the math and to calculate the value of each pixel in grayscale. The image has color because it uses the color data specified in the "palette" element. This is very much like using a "gradient map" filter on Krita, for example.

In Apophysis, you wouldn't have to type this source code. Instead, it provides a graphical user interface for you to manipulate the coefficients, edit the palette, etc.

Comments

Leave a Reply

Leave your thoughts! Required fields are marked *